linux内核那些事之Memory protection keys(硬件原理) |
您所在的位置:网站首页 › type3 protection key › linux内核那些事之Memory protection keys(硬件原理) |
mprotect/map原理及缺陷
《linux 关于虚拟内存的几个系统调用》,提及到用户程序可以通过mprotect或者map(MAP_FIXED)系统调用可以根据需要再次修改已经申请过的进程内存的访问权限,其修改原理主要就是申请page table entry中的读写权限,以一个经典的X86 64 entry为例: 每次通过mprotect/map修改权限时,都会修改地址转换表中相对应的的page table entry中的R/W。由于通常CPU地址转换是以page(4K)大小为单位,所以每次修改权限都是一次性修改整个page。那么如果每次需要修改1G空间大小的权限,就需要同时修改 262144个页面,这时就需要遍历每个页对应的PTE(page table entry)进行修改。如果一个应用程序中需要不断修改权限,那么就需要不断修改对应的PTE,其性能显然不能满足要求。 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |